/**
 * @brief 保存ssh镜像 功能实现
**/
/**
 * @brief 保存ssh镜像
 * @param buildDir 构建目录
 * @param prefix 前缀
 * @return 成功返回 0，失败返回 -1
 */
#include <docker.h>
/**
 * @brief ssh镜像 配置
 * dockerfile 开头配置
 * @param file 保存命令
 */
void file_start(string& file){
    file="FROM ubuntu:22.04 \n";
    file+="ENV DEBIAN_FRONTEND=noninteractive \n";
    sources_list(file);
    // 配置时区
    file+="apt-get install -y tzdata  && \\\n";
    file+="echo \"Asia/Shanghai\" > /etc/timezone  && \\\n";
    file+="dpkg-reconfigure -f noninteractive tzdata  && \\\n";
    file+="ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  && \\\n";
    // 安装 ssh 服务
    file+="apt-get install -y git && \\\n";
    file+="git clone -b ssh-service https://gitcode.com/hq_linux/system_init.git /tmp/ssh-service && \\\n";
    file+="cd /tmp/ssh-service && chmod +x *.sh && ./init.sh && \\\n";
    file+="cp ./start.sh /start.sh && chmod +x /start.sh && \\\n";
}
/**
 * @brief ssh镜像 配置
 * dockerfile 结尾配置
 * @param file 保存命令
 */
void file_end(string& file){
    // 更换阿里云源
    file+="git clone -b ubuntu-22-04 https://gitcode.com/hq_linux/system_init.git /tmp/ubuntu-22-04 && \\\n";
    file+="cd /tmp/ubuntu-22-04 && cat ./list/aliyun_sources.list > /etc/apt/sources.list && \\\n";
    file+="apt-get clean && \\\n";
    file+="rm -rf /var/lib/apt/lists/* /var/lib/apt/archives/* /tmp/* \n";
    file+="EXPOSE 80 443 \n";
    file+="ENTRYPOINT [\"/bin/bash\", \"-c\"] \n";
    file+="CMD [\"/start.sh\"] \n";


}
/**
 * @brief 保存ssh镜像
 * @param buildDir 构建目录
 * @param prefix 前缀
 * @return 成功返回 0，失败返回 -1
 */
int saveSshUbuntu_22_04Image(string buildDir,const char *prefix){
    string file;
    file_start(file);
    file_end(file);
    // 保存镜像
    string save_repository="crpi-vb403qyxdijc0eq9.cn-guangzhou.personal.cr.aliyuncs.com/hq_build/ssh";
    // 保存镜像标签
    string save_tag="ubuntu-22.04";
    // 本地镜像
    string local_tag = "ssh-ubuntu";
    string local_repository = "22.04";
    return build_image(buildDir,file,local_repository,local_tag,save_repository,save_tag);
}
/**
 * @brief 保存 ssh nginx proxy 镜像
 * @param buildDir 构建目录
 * @param prefix 前缀
 * @return 成功返回 0，失败返回 -1
 */
int saveSshNginxProxyImage(string buildDir,const char *prefix){
    string file;
    file_start(file);
    file+="apt-get install -y python3-pip  && \\\n";
    file+="pip install certbot-dnspod && \\\n";
    file+="apt-get install -y git && \\ \n";
    file+="git clone -b main https://gitcode.com/hq_make/util-docker.git main && \\ \n";
    file+="cd main/shell && chmod +x *.sh && \\ \n";
    file+="./install.sh && cd ../ && rm -rf main && \\ \n";
    file+="util-docker -cmd build_nginx -prefix "+string(prefix)+" && \\ \n";
    file+="util-docker -cmd build_start_proxy -prefix "+string(prefix)+" && \\\n";

    file_end(file);
    // 保存镜像
    string save_repository="crpi-vb403qyxdijc0eq9.cn-guangzhou.personal.cr.aliyuncs.com/hq_build/ssh";
    // 保存镜像标签
    string save_tag="nginx-proxy-ubuntu-22.04";
    // 本地镜像
    string local_tag = "22.04";
    string local_repository = "nginx-proxy-ubuntu";
    return build_image(buildDir,file,local_repository,local_tag,save_repository,save_tag);

}



